﻿using ServiceStack.Web;
using System;
using System.Collections.Generic;
using Ymatou.User.Dto.Auth;
using YmtAuth.Dto;
namespace YmtAuth.AppService
{
    /// <summary>
    /// 用户认证凭据
    /// </summary>
    public interface IUserBillsAppService
    {
        /// <summary>
        /// 用户注册。
        /// <remarks>用户注册调用该接口</remarks>
        /// </summary>
        /// <param name="uData"></param>
        ResponseData<string> CreateUserBills(Dictionary<string, object> uData = null);
        /// <summary>
        /// 获取用户凭据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<UserBillsResponseDto> GetUserBills(UserBillsRequestDto dto, IRequest request=null);
        /// <summary>
        /// 获取用户凭据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<BillsResponseDto> GetUserBills(GetUserBillsRequestDto dto, IRequest request=null);
            /// <summary>
        /// 更新用户凭据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<LoginResponseCode> Update(UserBillsRequestDto dto);
        ResponseData<string> LockUser(LockUserRequestDto dto);
        ResponseData<string> UnLockUser(UnLockUserRequestDto dto);
        ResponseData<string> LockIp(LockIpRequestDto dto);
        ResponseData<string> UnLockIp(UnLockIpRequestDto dto);
        ResponseData<IDictionary<int, string>> GetUserLockStatus(UserLockStatusRequestDto dto);
        ResponseData<IDictionary<string, bool>> GetIpLockStatus(IpLockStatusRequestDto dto);
        ResponseData<string> UpdateLoginId(LoginIdUpdateRequestDto dto);

        /// <summary>
        /// 获取用户密码的上次更新时间
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        ResponseData<string> GetLastUpdatedTimeForPas(UserBillsPasRequestDto dto, IRequest request = null);
    }
}
